﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Configuration;
using UricaoWeb.LogicaDeNegocios.Propiedad;
using System.Data;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;


namespace UricaoWeb.Presentacion
{
    public partial class API_propiedades_AgregarHotel : API_Seguridad_Principal
    {
        public LogicaPropiedades _hotel = new LogicaPropiedades();
        static public string _imagenURL;

        protected void Page_Load(object sender, EventArgs e)
        {
            var master = Master as MasterPage;
            if (master != null)
            {
                master.actualizar_label();
            }
            base.validar_usuario();
            ValidarCargadoImagen();
            if (TBnombreHotel.Text == "")
                FUbuscarImagen.Visible = false;
            
        }

        protected void ValidarCargadoImagen()
        {
            string _urlImagen = "~/Presentacion/images/" + TBnombreHotel.Text + "_" + this.FUbuscarImagen.FileName;
            //La Variable urlImagen servira para asignarle la Ruta 
            
                if (FUbuscarImagen.HasFile) 
                {
                    FUbuscarImagen.SaveAs(Server.MapPath(_urlImagen));//Guarda la imagen selccionada por el usario en la ruta de _urlImagen
                    IFotoHotel.ImageUrl = _urlImagen; //Muestra la foto seleccionada por el usuario, asi obtiene una Presentacion previa
                    _imagenURL = _urlImagen;
                }
                else
                {
                    IFotoHotel.ImageUrl = "";//Limpia el componente donde se muestra la imagen ya que la imagen no ha sido seleccionada
                    //System.IO.File.Delete(Server.MapPath("~/Presentacion/images/" + _nombre + "_" + this.FUbuscarImagen.FileName));
                }
            //Nota: si es borrado el campo del nombre del hotel, se quita la foto, ya que el comvenio que pusimos es que el nombre de 
            //la foto sea: nombreDelHotel_nombreDeLaFoto
               
        }
     
        protected void ReiniciaCampos()
        {
            //En este procedimiento se reinician todos los campos del formulario
            TBtelefonoHotel.Text = "";
            TBdescripcionHotel.Text = "";
            TBdireccion.Text = "";
            TBnombreHotel.Text = ""; 
            IFotoHotel.ImageUrl = "";
            CB1Estrella.Checked = false;
            CB2Estrellas.Checked = false;
            CB3Estrellas.Checked = false;
            CB4Estrellas.Checked = false;
            CB5Estrellas.Checked = false;
        }

        protected void EscondeChecks()
        {
            CB1Estrella.Enabled = false;
            CB2Estrellas.Enabled = false;
            CB3Estrellas.Enabled = false;
            CB4Estrellas.Enabled = false;
            CB5Estrellas.Enabled = false;
        }

        protected void Bagregar_Click(object sender, EventArgs e)
        {
            string _categoria = "";
                    if (CB1Estrella.Checked)
                        _categoria = "1";
                    if (CB2Estrellas.Checked)
                        _categoria = "2";
                    if (CB3Estrellas.Checked)
                        _categoria = "3";
                    if (CB4Estrellas.Checked)
                        _categoria = "4";
                    if (CB5Estrellas.Checked)
                        _categoria = "5";
            bool _validacionDeDatos = _hotel.ValidarEnvioTodosLosDatos(TBnombreHotel.Text,TBtelefonoHotel.Text,_imagenURL,TBdireccion.Text,_categoria,TBdescripcionHotel.Text,TBpisos.Text);
            //La variable _validacionDeDatos sirve para ver el valor que devuelve la funcion ValidacioEnvioTodosLosDatos y asi saber        
            //si esta bien llenado el formulario
            

            if (_validacionDeDatos)
            {
                string _validaHotelExistente = _hotel.ValidaExitenciaHotel(TBnombreHotel.Text);
                int _validaCategotia = ValidaCategorias();
                if (_validaHotelExistente == "0" && _validaCategotia == 1)
                {
                    _hotel.InsertarHotel(TBnombreHotel.Text, TBdescripcionHotel.Text, TBtelefonoHotel.Text, _imagenURL, TBdireccion.Text, _categoria, TBdescripcionHotel.Text);
                    _imagenURL = "";
                    _hotel.InsertarPisos(TBnombreHotel.Text, TBpisos.Text);
                    string _alerta = "alert('El hotel fue registrado correctamente')";
                    var _clientScript = Page.ClientScript;
                    _clientScript.RegisterClientScriptBlock(this.GetType(), "AlertScript", _alerta, true);
                    ReiniciaCampos();
                    Server.Transfer("~/Presentacion/API_propiedades_GestionHotel.aspx");
                }
                else
                {
                    string _alerta = "alert('No se puede registrar porque ya ese hotel exite o porque le esta asignando mas de una categoria de estrella')";
                    var _clientScript = Page.ClientScript;
                    _clientScript.RegisterClientScriptBlock(this.GetType(), "AlertScript", _alerta, true);
                }
            }
            else
            {
                string _alerta = "alert('No se puede registar el hotel porque hay campos vacios')";
                var _clientScript = Page.ClientScript;
                _clientScript.RegisterClientScriptBlock(this.GetType(),"AlertScript",_alerta,true);
            }

            
        }

        protected void TBnombreHotel_TextChanged(object sender, EventArgs e)
        {
            if (TBnombreHotel.Text != "")
                FUbuscarImagen.Visible = true;
            else
                FUbuscarImagen.Visible = false;

        }

        protected int ValidaCategorias()
        {
            int _suma = 0;
            if (CB1Estrella.Checked)
                _suma++;
            if (CB2Estrellas.Checked)
                _suma++;
            if (CB3Estrellas.Checked)
                _suma++;
            if (CB4Estrellas.Checked)
                _suma++;
            if (CB5Estrellas.Checked)
                _suma++;
            return _suma;
        }
  
    }
}